// pages/index/qiandao/index.js
Page({

  /**
   * 页面的初始数据
   */
  data: {
    id:'',
    ctx: null,
    tipsText: '',
    listener: null,
    startTime: 0,
    src: "",//图片的链接
    baidutoken: "",
    base64: "",
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {
    console.log(options)
    this.setData({
      id:options.id
    })
    this.initData();
  },
  initData(){
    wx.initFaceDetect()
    // 2、创建 camera 上下文 CameraContext 对象
    const ctx = wx.createCameraContext();
    this.setData({
      ctx
    })
  },
  // 拍照 
  takePhoto(){
    wx.showLoading({
      title: '加载中',
    })
    this.data.ctx.takePhoto({
      quality: 'high',
      success:res=>{
        console.log(res)
        this.setData({
          src: res.tempImagePath//获取图片
        })
        wx.getFileSystemManager().readFile({
          filePath: this.data.src, //选择图片返回的相对路径
          encoding: 'base64', //编码格式
          success: res => { //成功的回调
            this.setData({
              base64: res.data
            })
          }
        })
        this.getBaiduToken();
      }
    })
  },
  getBaiduToken:function(){
    var that=this;
    //acess_token获取,qs:需要多次尝试
    wx.request({
      url: 'https://aip.baidubce.com/oauth/2.0/token', //是真实的接口地址
      data: {
        grant_type: 'client_credentials',
        client_id: 'y4QgVh1Wb0dFvh0auNU0PRX9',//用你创建的应用的API Key
        client_secret: '9l1KNHXM8zYAY6OYGXGbWfqWt9CDETbc'//用你创建的应用的Secret Key
      },
      header: {
        'Content-Type': 'application/json' // 默认值
      },
      success(res) {
        that.setData({
          baidutoken: res.data.access_token//获取到token
        })
        that.uploadPhoto();
      }
    })
  },
  uploadPhoto:function()
  {
    var that=this;
    //上传人脸进行注册-----test
    wx.request({
      url: 'https://aip.baidubce.com/rest/2.0/face/v3/search?access_token=' + this.data.baidutoken,
      method: 'POST',
      data: {
        image: this.data.base64,
        image_type: 'BASE64',
        group_id_list: 'munian_01',//自己建的用户组id
        user_id: wx.getStorageSync('userInfo').user.id
      },
      header: {
        'Content-Type': 'application/json' // 默认值
      },
      success(res) {     
        console.log('res======>',res)
        //做成功判断
        wx.hideLoading()
        if (res.data.error_msg == 'SUCCESS') {//微信js字符串请使用单引号
          if(res.data.result.user_list[0].score > 80){
            wx.request({
              url: 'http://localhost:9090/api/sysClass/studentClockIn',
              data:{
                userId:wx.getStorageSync('userInfo').user.id,
                classId: that.data.id,
                status:1
              },
              method:'post',
              success: ress=>{
                if(ress.data.code == 200){
                  wx.showToast({
                    title: '打卡成功',
                    duration: 2000
                  })
                }else{
                  wx.showToast({
                    title: '打卡失败,'+ ress.data.msg,
                    icon:'none',
                    duration: 2000
                  })
                }
              }
            })
          }else{
            wx.showToast({
              title: '请使用本人照片！',
              duration: 2000,
              icon:'none'
            })
          }
          
        }else{
          if(res.data.error_msg == 'pic not has face'){
            wx.showToast({
              title:'图片中没有人脸',
              icon: 'none',
              duration: 2000
            })
          }else if(res.data.error_msg == 'image check fail'){
            wx.showToast({
              title:'无法解析人脸',
              icon: 'none',
              duration: 2000
            })
          }else if(res.data.error_msg == 'match user is not found'){
            wx.showToast({
              title:'未找到匹配的用户',
              icon: 'none',
              duration: 2000
            })
          }else{
            wx.showToast({
              title: res.data.error_msg,
              icon: 'none',
              duration: 2000
            })
          }
          
        }
      }
    })
  },
  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady: function () {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow: function () {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide: function () {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload: function () {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh: function () {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: function () {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage: function () {

  }
})